package com.jt.controller;

import com.jt.service.FileService;
import com.jt.vo.ImageVO;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

@RestController
@CrossOrigin
@RequestMapping("/file")
public class FileController {
    @Autowired
    private FileService fileService;

    /**
     * 文件上传：
     *      步骤：
     *      1.获取文件名称
     *      2.获取文件路径
     *      3.准备文件上传的全路径
     *      4.实现文件上传的操作
     *
     * SpringMVC中默认支持1MB大小图片
     * */
/*    @PostMapping("/upload")
    //入门案例
    public SysResult upload(MultipartFile file) throws IOException {//无需手动关流
        //1.获取文件名称
        String fileName = file.getOriginalFilename();
        //2.准备文件目录
        String dir = "R:/project3/images";
        File dirFile = new File(dir);
        if (!dirFile.exists()){//判断是否存在
            dirFile.mkdirs(); //不存在，创建多级目录
        }
        String path = dir + "/" +fileName;
        //4.实现文件的上传,可能会有异常,找不到路径,抛出异常
        file.transferTo(new File(path));
        return SysResult.success(null);
    }*/
    @PostMapping("/upload")
    public SysResult fileUpload(MultipartFile file){
        ImageVO imageVO = fileService.fileUpload(file);
        if (imageVO == null){
            return null;
        }
        return SysResult.success(imageVO);
    }

    /**
     * 文件删除
     * */
    @DeleteMapping("/deleteFile")
    public SysResult deleteFile(String virtualPath){
        fileService.deleteFile(virtualPath);
        return SysResult.success(null);
    }

}
